﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using Uricao.Contratos.Reportes_Graficos___Housekeeping___Limpieza;

namespace Uricao.Presentadores.Reportes_Graficos___Housekeeping___Limpieza
{
	public class PresentadorDatosReportes
	{
        private IContratoDatosReportes _vista;
        private const string _mensajeCamposVacios = "Disculpe, no debe dejar campos obligatorios en blanco (*)";
        private const string _mensajeFInicioMayor = "Disculpe, la fecha final debe ser superior a la inicial";

        public PresentadorDatosReportes(IContratoDatosReportes vista)
        {
            _vista = vista;
        }

        public void ValidarTodosCampos()
        {

            if (!TieneCamposVacios())
            {
                _vista.LMensajeDeError.Visible = false;
                if (!FechaInicioMayor())
                  _vista.LMensajeDeError.Visible = false;
            }  

        }

        public bool FechaInicioMayor ()
        {
             bool vacio =false;
             if (!ValidarFechas(Convert.ToDateTime(_vista.TBFechaInicio.Text), Convert.ToDateTime(_vista.TBFechaFin.Text)))
                {
                    _vista.LMensajeDeError.Visible = true;
                    _vista.LMensajeDeError.Text = _mensajeFInicioMayor;
                    vacio = true;
                }
               else
                     vacio = false;
               return vacio;
         }

        public bool TieneCamposVacios()
        {
            bool vacio = false;
            if (ValidarCamposVacios(_vista.TBFechaInicio.Text, _vista.TBFechaFin.Text))
            {
                _vista.LMensajeDeError.Visible = true;
                _vista.LMensajeDeError.Text = _mensajeCamposVacios;
                vacio = true;
            }
            else
                vacio= false;
            return vacio;
        }

        public bool ValidarCamposVacios(string campoFechaInicio, string campoFechaFin)
        {
            bool vacio = false;
            _vista.LFechaI.Visible = false;
            _vista.LFechaF.Visible = false;
            if (campoFechaInicio.Equals("") || campoFechaFin.Equals(""))
            {
                vacio = true;
                if (campoFechaInicio.Equals(""))
                    _vista.LFechaI.Visible = true;
                if (campoFechaFin.Equals(""))
                    _vista.LFechaF.Visible = true;
            }
            else
                vacio = false;

            return vacio;
        }

        ///<sumary>
        ///Metodo que se encarga de validar las fechas
        ///Parámetros:
        ///DateTime fechaInicio: fecha inicio
        ///DateTime fechaFin: fecha fin 
        ///Retorno: 
        ///Bool: Devuelve true o false dependiendo del caso 
        ///</sumary>
        public static bool ValidarFechas(DateTime fechaInicio, DateTime fechaFin)
        {
            bool mayor = false;
            if (fechaFin.CompareTo(fechaInicio) < 0)
                mayor = false; 
            else
                mayor = true;

            return mayor;
        }
	}
}
